package com.jiyun.om.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import org.w3c.dom.Text;

/**
 * <p>
 * 提货单表
 * </p>
 *
 * @author zhx
 * @since 2025-02-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("pickup_order")
@Schema(description = "提货单表")
public class PickupOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Schema(description = "提货单")
    private String pickupOrderId;

    @Schema(description = "运单外键")
    private Integer wid;
    @TableField(exist = false)
    @Schema(description = "运单号")
    private String waybillId;
    @TableField(exist = false)
    @Schema(description = "始发地")
    private String origin;
    @TableField(exist = false)
    @Schema(description = "目的地")
    private String destination;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "计划发车时间")
    private Date plannedDepartureTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际发车时间")
    private Date actualDepartureTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "计划到达时间")
    private Date plannedArrivalTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际到达时间")
    private Date actualArrivalTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际到达时间")
    private Date actualArrivalTime1;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际到达时间")
    private Date actualArrivalTime2;
    @TableField(exist = false)
    @Schema(description = "创建人")
    private String creator;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private Date creationTime;
    @TableField(exist = false)
    @Schema(description = "分摊运费")
    private BigDecimal sharedFreight;
    @TableField(exist = false)
    @Schema(description = "装卸费")
    private BigDecimal loadingUnloadingFee;
    @TableField(exist = false)
    @Schema(description = "包装费")
    private BigDecimal packagingFee;
    @TableField(exist = false)
    @Schema(description = "运费合计")
    private BigDecimal totalFreight;
    @TableField(exist = false)
    @Schema(description = "数量")
    private Integer quantity;
    @TableField(exist = false)
    @Schema(description = "货物名称")
    private String cargoName;
    @TableField(exist = false)
    @Schema(description = "体积")
    private BigDecimal volume;
    @TableField(exist = false)
    @Schema(description = "重量")
    private BigDecimal weight;
    @TableField(exist = false)
    @Schema(description = "付费合计")
    private BigDecimal totalPayment;
    @TableField(exist = false)
    @Schema(description = "总数量")
    private Integer totalQuantity;
    @TableField(exist = false)
    @Schema(description = "总体积")
    private BigDecimal totalVolume;
    @TableField(exist = false)
    @Schema(description = "总重量")
    private BigDecimal totalWeight;
    @TableField(exist = false)
    @Schema(description = "运费成本")
    private BigDecimal freightCost;
    @TableField(exist = false)
    @Schema(description = "计费方式")
    private String billingMethod;
    @TableField(exist = false)
    @Schema(description = "其他费用")
    private BigDecimal otherFees;
    @TableField(exist = false)
    @Schema(description = "司机外键")
    private Integer did;
    @TableField(exist = false)
    @Schema(description = "司机")
    private String driverName;
    @TableField(exist = false)
    @Schema(description = "手机号码")
    private String driverPhone;
    @TableField(exist = false)
    @Schema(description = "汽车外键")
    private Integer vid;
    @TableField(exist = false)
    @Schema(description = "车牌号")
    private String licensePlate;

    @Schema(description = "订单号")
    private String orderId;

    @Schema(description = "客户")
    private String customer;

    @Schema(description = "提货状态")
    private String pickupStatus;

    @Schema(description = "发货地址")
    private String shippingAddress;

    @Schema(description = "收货地址")
    private String receivingAddress;

    @Schema(description = "提货开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date pickupStartTime;

    @Schema(description = "提货完成时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date pickupCompletionTime;

    @Schema(description = "提货备注")
    private String pickupRemark;

    @Schema(description = "是否到站")
    private String isArrived;


}
